package leetcode_181_200;

import utils.TreeNode;

import java.util.ArrayList;
import java.util.List;

public class rightSideView_199 {
    int LastMaxHigh=-1;
    public List<Integer> rightSideView(TreeNode root) {
        //一直向右找并输出，如果没有则向左找，直到到达底部，记录高度
        //再向左，如果出现更高的，重复
        List<Integer> ans=new ArrayList<>();
        if(root!=null)
            find(root,ans,0);
        return ans;
    }
    public void find(TreeNode root,List<Integer> ans,int high){
        if(high>LastMaxHigh)
            ans.add(root.val);
        if(root.right!=null)
            find(root.right,ans,high+1);
        if(root.left!=null)
             find(root.left,ans,high+1);
        if(root.left==null&&root.right==null)
            LastMaxHigh=Math.max(LastMaxHigh,high);
    }
}
